An integrated circuit (“IC”) is a device (e.g., a semiconductor device) that includes many electronic components, such as transistors, resistors, diodes, etc. These components are often interconnected to form multiple circuit components, such as gates, cells, memory units, arithmetic units, controllers, decoders, etc. An IC includes multiple layers of wiring that interconnect its electronic and circuit components. Traditionally, IC's use preferred direction (“PD”) wiring models, which specify a preferred wiring direction for each of their wiring layers. In preferred direction wiring models, the preferred direction typically alternates between successive wiring layers.
One example of a PD wiring model is the PD Manhattan wiring model, which specifies alternating layers of preferred-direction horizontal and vertical wiring. Another example of a PD wiring model is the PD diagonal wiring model, which specifies alternating layers of preferred-direction diagonal wiring. The PD diagonal wiring model can allow for shorter wiring distances than the PD Manhattan wiring model and can decrease the total wirelength needed to interconnect the electronic and circuit components of an IC.
Design engineers design IC's by transforming logical or circuit descriptions of the IC's components into geometric descriptions, called layouts. IC layouts typically include (1) circuit modules (i.e., geometric representations of electronic or circuit IC components) with pins, and (2) interconnect lines (i.e., geometric representations of wiring) that connect the pins of the circuit modules. A net is typically defined as a collection of pins that need to be connected. To create layouts, design engineers typically use electronic design automation (“EDA”) applications. These applications provide sets of computer-based tools for creating, editing, and analyzing IC design layouts. One EDA tool is a wire router that defines routes for interconnect lines that connect the pins of nets. A wire router that explores Manhattan and diagonal routing directions on the same layer of an IC, however, typically produces routes containing acute angles. Routes containing acute angles have undesirable physical and electrical characteristics.
After routing has been performed, a DRC (design rule check) is performed to determine any design rule violations in the layout. A layout design often has to comport with a variety of design rules, such as having routes with no acute angles or having route segments that meet a minimum length requirement. A DRC violation occurs when a design violates such a design rule. If any acute angles are detected by the DRC process, another process is performed to correct the routes having the acute angles. For example, portions of routes having acute angles may be “filled-in” to create non-acute angles. Post-routing correction processes, however, may produce other DRC violations in the layout.
As such, there is a need for a router and routing method that tests for acute angles during the routing process to help avoid creating routes with acute angles. If acute angles are avoided in the routing process, there would be fewer or no corrections needed to eliminate acute angles after the routing process.